/********************************************************************************************************************
 *
 * Allwinner SoCs display driver.
 *
 * Copyright (C) 2016 Allwinner.
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2.  This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 *
 * Melis
 * the Easy Portable/Player Operation System
 * (c) Copyright 2012-2020
 * All	Rights Reserved
 *
 * File    :
 * By      : libaiao
 * Version : v1.00
 * Data    :
 * Note    : eink 设备控制时序数据和waveform数据
 * Version : v2.00
 * By      : liuli
 * Note    : eink 设备控制时序数据和waveform数据已经分开,现在只存放timing数据
 **********************************************************************************************************************
 */

#include "include/timing_ctrl.h"

static struct timing_ctrl_manager *g_timing_ctrl_mgr;

struct timing_ctrl_manager *get_timing_ctrl_mgr(void)
{
	return g_timing_ctrl_mgr;
}

const __u32 eink_ctrl_line_index_tbl[EINK_LCD_H + 1] = {
    0,  0,  0,  0,  0,                      /* line1--line5 */
    1,                                      /* line6 */
    2,                                      /* line7 */
    3,                                      /* line8 */
    3,                                      /* line9(解决右边少显示一行的问题)*/
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* line9--line608,共600行 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 100 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 200 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 300 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 400 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 500 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 600 */

    #if (EINK_PANEL_H >= 758)
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 700 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */

    4,  4,  4,  4,  4,  4,  4,  4,          /* 6 , 758 */
    #endif

    #if (EINK_PANEL_H >= 1080)
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 600 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 958 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 2 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 3 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 4 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 5 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 6 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 7 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 8 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 9 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 10, 1058 */

    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1068 */
    4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  /* 1078 */
    4,  4,                                       /* 1080 */

    #endif
    4, 5,					   /* line609 */

    6,  6,  6,  6,  6,  6,  6,  6,  6,  6,  /* line610--line620 */
};

/* NEW_CTRL_DATA */
const __u32 eink_ctrl_tbl_GC16_COMMON[8][EINK_WF_WIDTH] = {
/* line1--line5; 共5行 */
/* 1         2       3           4       5           6       7       8       9          10 */
{0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,

 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,

#if (EINK_PANEL_W >= 1024)
 /* 256 data */
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,

0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,

#endif

#if (EINK_PANEL_W >= 1440)
 /* 360 data */
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,

0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,

0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,
#endif

 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,

 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,
 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303,  0xA00000 | 0xFF030303,

 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303, 0xA00000 | 0xFF030303
},

/* line6 */
/* 1         2       3           4        5           6       7       8       9          10 */
{0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
							      /* $14 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

/* 1         2       3           4       5           6       7       $108       9          10 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,

#if (EINK_PANEL_W >= 1024)
 /* 256 data */
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,

 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
 /* 360 data */
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,

0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,

0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,

#endif

 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,

/* 1         2       3           4       5           6       7       8       9          10 */
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,

/* 1        2       3           4       $215           6       7       8       9          10 */
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303,  0x208000 | 0xff030303,
 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303,  0x208000 | 0xff030303,
 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303,  0x208000 | 0xff030303,
 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303,  0x208000 | 0xff030303,

 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303, 0x208000 | 0xff030303
},

/* line7 */
/* 1         2       3           4       5           6       7       8       9          10 */
{0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,
 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303,  0x608000 | 0xff030303,

 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0x608000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

#if (EINK_PANEL_W >= 1024)
 /* 256 data */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
 /* 360 data */
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,

#endif

 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

/* 1         2       3           2          4        2         5          2           6        2         7         2        8          2       9            2        10         2                     2 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

/* 1         2       3           2          4        2         $215       2              6     2            7      2        8          2       9            2         10        2                     2 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303
},

/* line8 */
/* 1         2       3           4       5           6       7       8       9          10 */
{0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

#if (EINK_PANEL_W >= 1024)
 /* 256 data */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
 /* 360 data */
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,

#endif

 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

/* 1         2       3           2          4        2         5          2           6        2         7         2        8          2       9            2        10         2                     2 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

/* 1         2       3           2          4        2         $215       2              6     2            7      2           8       2          9         2           10      2                     2 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303

},

/* line9-line608, 共600行 */
/* 1         2       3           4       5           6       7       8       9          10 */
{0xE0A000 | 0xff030303, 0xE0A000 | 0xff030303, 0xE0A000 | 0xff030303, 0xE0A000 | 0xff030303, 0xE0A000 | 0xff030303, 0xE0A000 | 0xff030303, 0xE0A000 | 0xff030303, 0xE0A000 | 0xff030303, 0xE0A000 | 0xff030303,  0xE0A000 | 0xff030303,

/* 1         2       $13         2          $14      2           $15      2           6        2         7         2        8          2       $19          2          10       2                     2 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xF08000 | 0xff030303, 0xD08000 | 0xff030303, 0xD08000 | 0xff030303, 0xD08000 | 0xff030303, 0xD08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,

 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,

#if (EINK_PANEL_W >= 1024)
 /* 256 data */
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
 /* 360 data */
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,

 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,

 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,
#endif

 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,

/* 1         2       3           2          4        2         5          2           6        2         7         2        8          2       9            2        10         2                     2 */
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303,  0xF08000 | 0xff030303,
/* 211       212     213         212        214      212       215        212        216       212      217        212      218        212     219          212        210      212                   212 */
 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xF08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303,  0xB08000 | 0xff030303,
 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303,  0xB08000 | 0xff030303,
 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303,  0xB08000 | 0xff030303,
 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303,  0xB08000 | 0xff030303,

/* 251       252     253         252        254      252       255        252        $256      252       257       252       258       252                  252                 252                   252 */
 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xB08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303

},

/* 以上为有效数据行 */

/* 以下为场结束部分 */
/* line609 */
/* 1         2       3           4       $5           6       7       8       9          10 */
{0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

#if (EINK_PANEL_W >= 1024)
	/* 256 data */
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
	/* 360 data */
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

	0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,
#endif

 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

/* 1        2       3           2       3  4        2       3 5          2       3   6        2       3 $7        2       3 8         2       39           2       3 10        2       3             2       3 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303,  0xE08000 | 0xff030303,

/* 21        212     213         212        214      212       215        212          216     212        217      212       218       212       219        212        210      212                   212 */
 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xE08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303
},

/* line610-620 */
/* 1         2       3           4       $5           6       $7       8       9          10 */
{0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

#if (EINK_PANEL_W >= 1024)
 /* 256 data */
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,
#endif

#if (EINK_PANEL_W >= 1440)
 /* 360 data */
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,

#endif

 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

/* 1         2       3           2          4        2         5          2           6        2         $7        2         8         2        9           2         10        2                     2 */
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,
 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303,  0xA08000 | 0xff030303,

 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303, 0xA08000 | 0xff030303
},

};

#ifdef TIMING_BUF_DEBUG
static __s32 load_timing_buf(const char *path, char *buf)
{
	struct file *fp = NULL;
	__s32 file_len = 0;
	__s32 read_len = 0;
	mm_segment_t fs;
	loff_t pos;
	__s32 ret = -EINVAL;

	if ((!path) || (!buf)) {
		pr_info("path is null\n");
		return -EINVAL;
	}

	fp = filp_open(path, O_RDONLY, 0);
	if (IS_ERR(fp))	{
		pr_info("fail to open timing buf file(%s)", path);
		return -EBADF;
	}

	fs = get_fs();
	set_fs(KERNEL_DS);
	pos = 0;
	file_len = fp->f_path.dentry->d_inode->i_size;

	EINK_INFO_MSG("Timing buf %s: len=0x%x\n", path, file_len);

	read_len = vfs_read(fp, (char *)buf, file_len, &pos);
	if (read_len != file_len) {
		pr_err("read file(%s) error(read=%d byte, file=%d byte)\n",
		       path, read_len, file_len);
		ret = -EAGAIN;
		goto error;
	}

	save_as_bin_file((__u8 *)buf, "/tmp/timing_test.bin", file_len, 0);

	if (fp) {
		filp_close(fp, NULL);
		set_fs(fs);
	}

	pr_info("load timing file(%s) successfully\n", path);
	return 0;

error:
	if (fp) {
		filp_close(fp, NULL);
		set_fs(fs);
	}

	return ret;
}
#endif

#ifdef TIMING_BUF_DEBUG
int init_eink_ctrl_data(unsigned long timing_vaddr)
{
	u8 *point = NULL;

	char path[128] = {0};
	int ret = -EINVAL;

	if (timing_vaddr == 0) {
		pr_err("%s: input param is null\n", __func__);
		return -EINVAL;
	}

	point = (u8 *)timing_vaddr;
	memset(path, 0, sizeof(path));
	sprintf(path, "%s", DEFAULT_TIMING_BUF_PATH);
	ret = load_timing_buf(path, (char *)point);

	if (ret != 0)
		pr_err("%s: load timing buf fail, ret = %d\n", __func__, ret);

	return ret;
}
#else
/*
Description	: wavedata buffer must call this function to init conctrl data,
		  this interface is for 8-bits data TCON
Input		: eink_timing_info -- specify the eink panel timing parameter
Output		: timing_buf -- timing para buffer address(virturl address)
Return		: 0 -- success, others -- fail
*/
int init_eink_ctrl_data(unsigned long timing_vaddr)
{
	int ret = 0;
	u32 row, col = 0, row_temp = 0;

	const u32 *p_ctrl_gc_tbl = NULL;
	u32 *p_ctrl_line = NULL;

	u32 wav_width = 0, wav_height = 0;
	u32 hync_len = 0, vync_len = 0;
	u32 h_data_len = 0, v_data_len = 0;

	u32 *point = NULL;
	A13_WAVEDATA *global_ctrl_buffer = NULL;

	A13_WAVEDATA *src = NULL;
	TIMING_INFO *dest = NULL;

	struct eink_panel_info	*panel_info;
	struct timing_info *timing;

	struct eink_manager *mgr = get_eink_manager();

	if (!mgr) {
		pr_err("%s:Eink Mgr is NULL\n", __func__);
		return -1;
	}

	panel_info = &mgr->panel_info;
	timing = &mgr->timing_info;

	if ((timing_vaddr == 0) || (!panel_info) || (!timing)) {
		pr_err("%s: input param is null\n", __func__);
		return -EINVAL;
	}

	hync_len = timing->lsl + timing->lbl + timing->lel;
	vync_len = timing->fsl + timing->fbl + timing->fel;
	h_data_len = panel_info->width >> 2;
	v_data_len = panel_info->height;
	wav_width = h_data_len + hync_len;
	wav_height = v_data_len + vync_len;

	global_ctrl_buffer = (A13_WAVEDATA *)kzalloc(wav_width * wav_height *
					sizeof(A13_WAVEDATA), GFP_KERNEL);
	if (!global_ctrl_buffer) {
		pr_err("%s: alloc memory for global control buffer fail, size=0x%x\n", __func__,
		       (unsigned int)(wav_width * wav_height * sizeof(A13_WAVEDATA)));
		return -ENOMEM;
	}

	point = (u32 *)global_ctrl_buffer;
	p_ctrl_gc_tbl = (u32 *)eink_ctrl_tbl_GC16_COMMON[4];
	p_ctrl_line = (u32 *)eink_ctrl_line_index_tbl;

	/* line1--line8 */
	for (row = 0; row < (timing->fsl + timing->fbl); row++) {
		row_temp = *p_ctrl_line++;
		for (col = 0; col < wav_width; col++) {
			*point = eink_ctrl_tbl_GC16_COMMON[row_temp][col];
			point++;
		}
	}

/*    p_ctrl_line += 600;*/
/*    point += 600*258;*/

	for (; row < (wav_height - timing->fel); row++) {
		row_temp = *p_ctrl_line++;
/*		for (col = 0; col < (eink_timing_info->lsl +
 *					eink_timing_info->lbl); col++) {
			*point = (*(p_ctrl_gc_tbl + col));
			point++;
		}

		point += h_data_len;
		col += h_data_len;
*/
		for (col = 0; col < wav_width; col++) {
			*point = (*(p_ctrl_gc_tbl + col));
			point++;
		}
	}

	for (; row < wav_height; row++) {
		row_temp = *p_ctrl_line++;
		for (col = 0; col < wav_width; col++) {
			*point = eink_ctrl_tbl_GC16_COMMON[row_temp][col];
			point++;
		}
	}

	src = global_ctrl_buffer;
	dest = (TIMING_INFO *)timing_vaddr;

	for (row = 0; row < wav_height; row++) {
		for (col = 0; col < wav_width; col++) {
			dest->bits.mode = src->bits.mode;
			dest->bits.oeh = src->bits.oeh;
			dest->bits.leh = src->bits.leh;
			dest->bits.sth = src->bits.sth;
			dest->bits.ckv = src->bits.ckv;
			dest->bits.stv = src->bits.stv;
			dest->bits.res0 = 0;//3;
			dest++;
			src++;
		}
	}

	if (global_ctrl_buffer) {
		kfree(global_ctrl_buffer);
		global_ctrl_buffer = NULL;
	}

	return ret;
}
#endif

static s32 timing_ctrl_set_open_func(struct timing_ctrl_manager *mgr,
				     EINK_PANEL_FUNC func, u32 delay)
{
	EINK_INFO_MSG("\n");
	if (func) {
		EINK_INFO_MSG("\n");
		mgr->open_flow.func[mgr->open_flow.func_num].func = func;
		mgr->open_flow.func[mgr->open_flow.func_num].delay = delay;
		mgr->open_flow.func_num++;
	}

	return 0;
}

static s32 timing_ctrl_set_close_func(struct timing_ctrl_manager *mgr,
				      EINK_PANEL_FUNC func, u32 delay)
{
	EINK_INFO_MSG("\n");
	if (func) {
		mgr->close_flow.func[mgr->close_flow.func_num].func = func;
		mgr->close_flow.func[mgr->close_flow.func_num].delay = delay;
		mgr->close_flow.func_num++;
	}

	return 0;
}

s32 timing_ctrl_mgr_enable(struct timing_ctrl_manager *mgr)
{
	int ret = 0, i = 0;
	if (mgr->enabled == true) {
		return 0;
	}

	eink_config_timing_param(&mgr->info);
	eink_timing_gen_enable();

	for (i = 0; i < EINK_GPIO_NUM; i++) {
		mgr->gpio_hdl[i] = 0;

		if (mgr->eink_gpio_used[i]) {
			mgr->gpio_hdl[i] =
				eink_sys_gpio_request(&mgr->eink_gpio[i], 1);
		}
	}

	mgr->open_flow.func_num = 0;
	if (mgr->panel_func.cfg_open_flow)
		mgr->panel_func.cfg_open_flow();
	else {
		pr_err("%s:cfg_open_flow is NULL\n", __func__);
		ret = -EINVAL;
		return ret;
	}

	EINK_INFO_MSG("func num = %d\n", mgr->open_flow.func_num);
	for (i = 0; i < mgr->open_flow.func_num; i++) {
		EINK_INFO_MSG("0x%p\n", mgr->open_flow.func[i].func);
		if (mgr->open_flow.func[i].func) {
			mgr->open_flow.func[i].func();
			EINK_INFO_MSG("open flow:step %d finish, to delay %d\n", i,
				      mgr->open_flow.func[i].delay);
			if (mgr->open_flow.func[i].delay != 0)
				mdelay(mgr->open_flow.func[i].delay);
		}
	}

	mgr->enabled = true;
	return ret;
}

int timing_ctrl_mgr_disable(struct timing_ctrl_manager *mgr)
{
	int i = 0;

	mgr->close_flow.func_num = 0;
	if (mgr->panel_func.cfg_close_flow)
		mgr->panel_func.cfg_close_flow();
	else {
		pr_err("%s:cfg_close_flow is NULL\n", __func__);
		return -1;
	}

	for (i = 0; i < mgr->close_flow.func_num; i++) {
		if (mgr->close_flow.func[i].func) {
			mgr->close_flow.func[i].func();
			EINK_INFO_MSG("close flow:step %d finish, to delay %d\n", i,
				      mgr->close_flow.func[i].delay);
			if (mgr->close_flow.func[i].delay != 0)
				mdelay(mgr->close_flow.func[i].delay);
		}
	}

	for (i = 0; i < EINK_GPIO_NUM; i++) {
		if (mgr->gpio_hdl[i]) {
			eink_sys_gpio_release(mgr->gpio_hdl[i], 2);

			mgr->eink_gpio[i].mul_sel = 7;
			mgr->gpio_hdl[i] =
				eink_sys_gpio_request(&mgr->eink_gpio[i], 1);

			eink_sys_gpio_release(mgr->gpio_hdl[i], 2);
			mgr->gpio_hdl[i] = 0;
		}
	}

	mgr->enabled = false;
	return 0;
}

int timing_ctrl_mgr_init(struct init_para *para)
{
	int ret = 0;
	struct timing_ctrl_manager *timing_ctrl_mgr = NULL;

	struct eink_manager *eink_mgr = get_eink_manager();

	if (!eink_mgr) {
		pr_err("%s:eink_mgr is NULL!\n", __func__);
		return -1;
	}
	timing_ctrl_mgr =
		(struct timing_ctrl_manager *)malloc(sizeof(struct timing_ctrl_manager));
	if (!timing_ctrl_mgr) {
		pr_err("%s:timing manager malloc failed!\n", __func__);
		ret = -ENOMEM;
		goto timing_mgr_err;
	}
	memset((void *)timing_ctrl_mgr, 0, sizeof(struct timing_ctrl_manager));

	memcpy(&timing_ctrl_mgr->info, &para->timing_info, sizeof(struct timing_info));
	memcpy(timing_ctrl_mgr->eink_gpio_used, para->eink_gpio_used, EINK_GPIO_NUM * sizeof(unsigned int));
	memcpy(timing_ctrl_mgr->eink_gpio, para->eink_gpio, EINK_GPIO_NUM * sizeof(struct eink_gpio_cfg));

	timing_ctrl_mgr->enable = timing_ctrl_mgr_enable;
	timing_ctrl_mgr->disable = timing_ctrl_mgr_disable;
	timing_ctrl_mgr->set_open_func = timing_ctrl_set_open_func;
	timing_ctrl_mgr->set_close_func = timing_ctrl_set_close_func;

	eink_mgr->timing_ctrl_mgr = timing_ctrl_mgr;
	g_timing_ctrl_mgr = timing_ctrl_mgr;

	/* init eink panel func */
	eink_panel_init();

	return 0;

timing_mgr_err:
	free(timing_ctrl_mgr);
	return ret;
}

s32 eink_set_panel_funcs(char *name, struct eink_panel_func *eink_cfg)
{
	struct timing_ctrl_manager *timing_ctrl_mgr = NULL;
	char primary_key[20], drv_name[32];
	s32 ret = 0;

	EINK_INFO_MSG("PANEL:%s come in!\n", name);

	timing_ctrl_mgr = g_timing_ctrl_mgr;
	if (!timing_ctrl_mgr) {
		pr_err("set panel funcs NULL hdl!\n");
		return -EINVAL;
	}

	sprintf(primary_key, "eink");

	ret = eink_sys_script_get_item(primary_key, "eink_panel_name",
				       (int *)drv_name, 2);
	EINK_INFO_MSG("syscfg_drv_name %s,  set_panel_name %s\n", drv_name, name);

	if ((ret == 2) && !strcmp(drv_name, name)) {
		memset(&timing_ctrl_mgr->panel_func, 0, sizeof(struct eink_panel_func));
		timing_ctrl_mgr->panel_func.cfg_open_flow = eink_cfg->cfg_open_flow;
		timing_ctrl_mgr->panel_func.cfg_close_flow = eink_cfg->cfg_close_flow;

		return 0;
	}

	return -1;
}
